/* 数学服务受理模块 */
// /math/add?a=12&b=34

const mathUtil = require("../utils/mathUtil");
const { getUrlInfo } = require("../utils/reqUtil");

// /math/add
const regMethod = /\/math\/(.*)/;
const getMethod = (pathname) => regMethod.exec(pathname)[1];

function handle(req, res) {
  /* 提取URL中的pathname */
  const { pathname, searchParams } = getUrlInfo(req);

  // 提取出运算方法 add subtract multiply divie
  const method = getMethod(pathname);

  // 提取要运算的参数a b
  const { a, b } = searchParams;

  // 调用封装好的数学工具进行处理 得到结果
  const result = mathUtil[method](a*1, b*1);

  // 对客户端返回结果
  res.end(
    JSON.stringify({
      method,
      searchParams,
      result,
    })
  );
}

module.exports = {
  handle,
};
